NullPointerException
should be avoided, not caught. Any situation in which NullPointerException
is explicitly caught can
easily be converted to a null
test, and any behavior being carried out in the catch block can easily be moved to the "is null" branch of
the conditional.
Noncompliant code example
public int lengthPlus(String str) {
int len = 2;
try {
len += str.length();
}
catch (NullPointerException e) {
log.info("argument was null");
}
return len;
}
Compliant solution
public int lengthPlus(String str) {
int len = 2;
if (str != null) {
len += str.length();
}
else {
log.info("argument was null");
}
return len;
}